package org.example.library.mapper;

import org.apache.ibatis.annotations.*;
import org.example.library.model.BookInfo;
import org.example.library.model.PageRequest;

import java.util.List;
@Mapper
public interface BookInfoMapper {
    @Select("select count(1) from book_info where status<>0")
    Integer count();

    @Select("select * from book_info where status !=0 order by id desc limit #{offset}, #{pageSize}")
    List<BookInfo> queryBookListByPage(PageRequest pageRequest);
    @Select("select id, book_name, author, count, price, publish, `status`, " +
            "create_time, update_time " +
            "from book_info where id=#{bookId} and status<>0")
    BookInfo queryBookById(Integer bookId);
    Integer updateBook(BookInfo bookInfo);
    @Insert("insert into book_info (book_name,author,count,price,publish,status) " +
            "values (#{bookName},#{author},#{count},#{price},#{publish},#{status})")
    Integer insertBook(BookInfo bookInfo);

    @Update("update book_info set status=#{status} where id=#{id}")
    Integer deleteBook(BookInfo id);
    void batchDeleteBook(@Param("ids") List<Integer> ids);
}
